/*!
 * Copyright (C) 2004-2009 Giant Interective Group, Inc. All rights reserved.
 * 版权所有 2004-2009 上海巨人网络科技有限公司
 *
 * v #version, #date by Fuchun
 * Depend on jQuery 1.3.x
 * Depend on giant.core 2.0.x
 */

(function($) {

/**
 * 主菜单Javascript事件控制工具类。
 * @class giant.ui.MainMenu 主菜单控件工具类。
 */
giant.ui.MainMenu = {
	
	/**
	 * 固定的系统菜单。
	 * 
	 * @type Object
	 */
	FixedMenu: {
		
		/**
	     * 主菜单相关的样式类。
	     * @type String
	     */
	    MenuClass: '.ui-systemtab',
		
		/**
	     * 固定的系统菜单鼠标划过时的菜单按钮要添加的样式类。
	     * @type String
	     */
	    mouseEnterCSS: 'on',
		
		/**
		 * 固定的系统菜单按钮鼠标划过时的事件。
		 * 
		 * @param {window.Event} 当前事件对象的引用。
		 */
		mouseEnter: function(event) {
			var fixedMenu = giant.ui.MainMenu.FixedMenu;
			$(this).addClass(fixedMenu.mouseEnterCSS);
			var submenu = $(this).find('ul');
			if(submenu.length > 0) {
				submenu.slideDown("fast");
			}
			return false;
		},
		/**
         * 固定的系统菜单按钮鼠标离开时的事件。
         * 
         * @param {window.Event} 当前事件对象的引用。
         */
		mouseLeave: function(event) {
			var fixedMenu = giant.ui.MainMenu.FixedMenu;
			$(this).removeClass(fixedMenu.mouseEnterCSS);
			var submenu = $(this).find('ul');
			if(submenu.length > 0) {
                submenu.stop(true, true);
                if (giant.B.msie && giant.B.version == "6.0") {
                    submenu.find("iframe").remove();
                }
                submenu.slideUp("fast");
			}
			return false;
		}
	},
	
	/**
     * 用户的活动菜单。
     * 
     * @type Object
     */
	UserMenu: {
		
		/**
		 * 用户菜单的元素Id。
		 * 
		 * @type Object
		 */
		MenusId: {},
		
		/**
		 * 用户菜单相关的样式业。
		 * @type String
		 */
		MenuClass: '.ui-usertab',
		
		/**
	     * 用户的活动菜单鼠标划过时的菜单按钮要添加的样式类。
	     * @type String
	     */
	    mouseEnterCSS: 'u-on',
	    
	    /**
         * 用户的活动菜单按钮鼠标划过时的事件。
         * 
         * @param {window.Event} 当前事件对象的引用。
         */
	    mouseEnter: function(event) {
	    	var userMenu = giant.ui.MainMenu.UserMenu;
	    	$(this).addClass(userMenu.mouseEnterCSS);
	    	return false;
	    },
	    /**
         * 用户的活动菜单按钮鼠标离开时的事件。
         * 
         * @param {window.Event} 当前事件对象的引用。
         */
	    mouseLeave: function(event) {
	    	var userMenu = giant.ui.MainMenu.UserMenu;
            $(this).removeClass(userMenu.mouseEnterCSS);
            return false;
	    },
	    /**
	     * 移除指定的用户菜单。
	     * @param {String} li 要移除的用户菜单元素Id。
	     */
	    removeMenu: function(li) {
	    	var menuItem = $('#' + li);
	    	var redirect = menuItem.hasClass('u-current');
	    	menuItem.remove();
	    	GiantAjax.responseJson({
	    		url: '/ajaxCloseUserMenu.do?umid=' + li,
	    		success: function(json) {
	    			if(redirect)
	    			    location.href = Path['domain'] + '/home.do';
	    		}
	    	});
	    }
	}
};

window.MainMenu = giant.ui.MainMenu;

$(document).ready(function() {
	$(MainMenu.FixedMenu.MenuClass).bind('mouseenter', MainMenu.FixedMenu.mouseEnter)
	.bind('mouseleave', MainMenu.FixedMenu.mouseLeave);
	var userMenus = $(MainMenu.UserMenu.MenuClass);
	userMenus.bind('mouseenter', MainMenu.UserMenu.mouseEnter)
	.bind('mouseleave', MainMenu.UserMenu.mouseLeave);
	for(var i = 0, len = userMenus.length; i < len; i++) {
		MainMenu.UserMenu.MenusId[userMenus[i].id] = '#' + userMenus[i].id;
	}
});

})(jQuery);